[INFO] cloning repository https://github.com/EaterLabs/staafmixer
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/EaterLabs/staafmixer" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FEaterLabs%2Fstaafmixer", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FEaterLabs%2Fstaafmixer'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 3cdfe9f8da23035ab9cf58b402fc6e2ee56a545d
[INFO] fixing EaterLabs/staafmixer against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=end=2015,2024 for pr-157817-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FEaterLabs%2Fstaafmixer" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/EaterLabs/staafmixer
[INFO] finished tweaking git repo https://github.com/EaterLabs/staafmixer
[INFO] tweaked toml for git repo https://github.com/EaterLabs/staafmixer written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/EaterLabs/staafmixer on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/EaterLabs/staafmixer already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: staaf-janus/Cargo.toml: `crate_type` is deprecated in favor of `crate-type` and will not work in the 2024 edition
[INFO] [stderr] (in the `staaf_janus` library target)
[INFO] [stderr] warning: `staaf-janus` (manifest) generated 1 warning
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 3d55b6972f1e2e6bbb78ffa9394b157a63fa288b787065040f4c0d0badb76eb5
[INFO] running `Command { std: "docker" "start" "3d55b6972f1e2e6bbb78ffa9394b157a63fa288b787065040f4c0d0badb76eb5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "3d55b6972f1e2e6bbb78ffa9394b157a63fa288b787065040f4c0d0badb76eb5" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "3d55b6972f1e2e6bbb78ffa9394b157a63fa288b787065040f4c0d0badb76eb5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "3d55b6972f1e2e6bbb78ffa9394b157a63fa288b787065040f4c0d0badb76eb5" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=end=2015,2024", kill_on_drop: false }`
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating staaf-ingest/Cargo.toml from 2018 edition to 2021
[INFO] [stderr]    Migrating staaf-core/Cargo.toml from 2018 edition to 2021
[INFO] [stderr]    Migrating staaf-janus-client/Cargo.toml from 2018 edition to 2021
[INFO] [stderr]    Migrating staaf-janus/Cargo.toml from 2018 edition to 2021
[INFO] [stderr] warning: staaf-janus/Cargo.toml: `crate_type` is deprecated in favor of `crate-type` and will not work in the 2024 edition
[INFO] [stderr] (in the `staaf_janus` library target)
[INFO] [stderr] warning: `staaf-janus` (manifest) generated 1 warning
[INFO] [stderr]    Compiling libc v0.2.78
[INFO] [stderr]    Compiling proc-macro2 v1.0.24
[INFO] [stderr]    Compiling unicode-xid v0.2.1
[INFO] [stderr]    Compiling syn v1.0.42
[INFO] [stderr]    Compiling proc-macro-hack v0.5.18
[INFO] [stderr]    Compiling autocfg v1.0.1
[INFO] [stderr]    Compiling serde_derive v1.0.116
[INFO] [stderr]    Compiling serde v1.0.116
[INFO] [stderr]    Compiling version_check v0.9.2
[INFO] [stderr]    Compiling typenum v1.12.0
[INFO] [stderr]    Compiling log v0.4.11
[INFO] [stderr]    Compiling memchr v2.3.3
[INFO] [stderr]    Compiling getrandom v0.1.15
[INFO] [stderr]    Compiling generic-array v0.14.4
[INFO] [stderr]    Compiling pin-project-internal v0.4.25
[INFO] [stderr]     Checking once_cell v1.4.1
[INFO] [stderr]     Checking itoa v0.4.6
[INFO] [stderr]    Compiling proc-macro-nested v0.1.6
[INFO] [stderr]    Compiling byteorder v1.3.4
[INFO] [stderr]     Checking futures-core v0.3.6
[INFO] [stderr]     Checking tinyvec v0.3.4
[INFO] [stderr]     Checking bytes v0.5.6
[INFO] [stderr]    Compiling quote v1.0.7
[INFO] [stderr]     Checking net2 v0.2.35
[INFO] [stderr]     Checking num_cpus v1.13.0
[INFO] [stderr]    Compiling ryu v1.0.5
[INFO] [stderr]     Checking futures-sink v0.3.6
[INFO] [stderr]     Checking unicode-normalization v0.1.13
[INFO] [stderr]     Checking rand_core v0.5.1
[INFO] [stderr]     Checking iovec v0.1.4
[INFO] [stderr]     Checking futures-channel v0.3.6
[INFO] [stderr]     Checking futures-task v0.3.6
[INFO] [stderr]    Compiling tiny-keccak v2.0.2
[INFO] [stderr]     Checking ppv-lite86 v0.2.9
[INFO] [stderr]    Compiling getrandom v0.2.0
[INFO] [stderr]    Compiling serde_json v1.0.58
[INFO] [stderr]     Checking futures-io v0.3.6
[INFO] [stderr]     Checking mio v0.6.22
[INFO] [stderr]    Compiling num-traits v0.2.12
[INFO] [stderr]    Compiling pkg-config v0.3.18
[INFO] [stderr]     Checking percent-encoding v2.1.0
[INFO] [stderr]     Checking cpuid-bool v0.1.2
[INFO] [stderr]     Checking idna v0.2.0
[INFO] [stderr]     Checking arc-swap v0.4.7
[INFO] [stderr]     Checking rand_chacha v0.2.2
[INFO] [stderr]     Checking opaque-debug v0.3.0
[INFO] [stderr]     Checking signal-hook-registry v1.2.1
[INFO] [stderr]     Checking digest v0.9.0
[INFO] [stderr]     Checking block-buffer v0.9.0
[INFO] [stderr]     Checking mio-uds v0.6.8
[INFO] [stderr]     Checking rand v0.7.3
[INFO] [stderr]     Checking sha-1 v0.9.1
[INFO] [stderr]     Checking url v2.1.1
[INFO] [stderr]     Checking http v0.2.1
[INFO] [stderr]    Compiling glib-sys v0.9.1
[INFO] [stderr]     Checking input_buffer v0.3.1
[INFO] [stderr]    Compiling num-integer v0.1.43
[INFO] [stderr]     Checking pin-project-lite v0.1.10
[INFO] [stderr]     Checking utf-8 v0.7.5
[INFO] [stderr]    Compiling const_fn v0.4.3
[INFO] [stderr]     Checking base64 v0.12.3
[INFO] [stderr]    Compiling jansson-sys v0.1.0
[INFO] [stderr]    Compiling const-random-macro v0.1.12
[INFO] [stderr]    Compiling crossbeam-utils v0.8.0
[INFO] [stderr]    Compiling cc v1.0.60
[INFO] [stderr]     Checking const-random v0.1.12
[INFO] [stderr]     Checking time v0.1.44
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking colored v1.9.3
[INFO] [stderr]     Checking ahash v0.3.8
[INFO] [stderr]     Checking janus-plugin-sys v0.7.0
[INFO] [stderr]     Checking bytes v0.6.0
[INFO] [stderr]     Checking hex v0.4.2
[INFO] [stderr]     Checking chrono v0.4.19
[INFO] [stderr]     Checking dashmap v3.11.10
[INFO] [stderr]     Checking crossbeam-channel v0.5.0
[INFO] [stderr]    Compiling ring v0.16.15
[INFO] [stderr]     Checking tungstenite v0.11.1
[INFO] [stderr]    Compiling futures-macro v0.3.6
[INFO] [stderr]    Compiling tokio-macros v0.2.5
[INFO] [stderr]    Compiling async-trait v0.1.41
[INFO] [stderr]     Checking tokio v0.2.22
[INFO] [stderr]     Checking pin-project v0.4.25
[INFO] [stderr]     Checking futures-util v0.3.6
[INFO] [stderr]     Checking futures-executor v0.3.6
[INFO] [stderr]     Checking futures v0.3.6
[INFO] [stderr]     Checking tokio-tungstenite v0.11.0
[INFO] [stderr]     Checking staaf-core v0.1.0 (/opt/rustwide/workdir/staaf-core)
[INFO] [stderr]     Checking janus-plugin v0.12.0
[INFO] [stderr]    Migrating staaf-core/src/lib.rs from 2018 edition to 2021
[INFO] [stderr]     Checking staaf-janus-client v0.1.0 (/opt/rustwide/workdir/staaf-janus-client)
[INFO] [stderr]     Checking staaf-janus v0.1.0 (/opt/rustwide/workdir/staaf-janus)
[INFO] [stderr]    Migrating staaf-janus-client/src/lib.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating staaf-janus/src/lib.rs from 2018 edition to 2021
[INFO] [stderr]     Checking staaf-ingest v0.1.0 (/opt/rustwide/workdir/staaf-ingest)
[INFO] [stderr]    Migrating staaf-ingest/src/main.rs from 2018 edition to 2021
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 44.42s
[INFO] [stderr] crater-edition-check: staaf-ingest v0.1.0 (/opt/rustwide/workdir/staaf-ingest) updating edition from 2018 to 2021
[INFO] [stderr] crater-edition-check: staaf-core v0.1.0 (/opt/rustwide/workdir/staaf-core) updating edition from 2018 to 2021
[INFO] [stderr] crater-edition-check: staaf-janus-client v0.1.0 (/opt/rustwide/workdir/staaf-janus-client) updating edition from 2018 to 2021
[INFO] [stderr] crater-edition-check: staaf-janus v0.1.0 (/opt/rustwide/workdir/staaf-janus) updating edition from 2018 to 2021
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"`
[INFO] [stderr]   |
[INFO] [stderr]   = note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr]   = note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
[INFO] [stderr]   = note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] [stderr] warning: staaf-janus/Cargo.toml: `crate_type` is deprecated in favor of `crate-type` and will not work in the 2024 edition
[INFO] [stderr] (in the `staaf_janus` library target)
[INFO] [stderr] warning: `staaf-janus` (manifest) generated 1 warning
[INFO] [stderr]     Checking staaf-core v0.1.0 (/opt/rustwide/workdir/staaf-core)
[INFO] [stderr]     Checking staaf-janus-client v0.1.0 (/opt/rustwide/workdir/staaf-janus-client)
[INFO] [stderr]     Checking staaf-janus v0.1.0 (/opt/rustwide/workdir/staaf-janus)
[INFO] [stdout] warning: unused import: `RtpConnectionHandle`
[INFO] [stdout]  --> staaf-janus/src/threaded_rtp_handler/manager.rs:1:66
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::threaded_rtp_handler::rtp_connection::{RtpConnection, RtpConnectionHandle};
[INFO] [stdout]   |                                                                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SocketAddr`
[INFO] [stdout]  --> staaf-janus/src/threaded_rtp_handler/manager.rs:8:24
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::net::{IpAddr, SocketAddr, UdpSocket};
[INFO] [stdout]   |                        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::threaded_rtp_handler::rtp_connection::RtpConnectionHandle`
[INFO] [stdout]  --> staaf-janus/src/threaded_rtp_handler/message_handler.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::threaded_rtp_handler::rtp_connection::RtpConnectionHandle;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `dashmap::DashMap`
[INFO] [stdout]  --> staaf-janus/src/threaded_rtp_handler/message_handler.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use dashmap::DashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SocketAddr`
[INFO] [stdout]  --> staaf-janus/src/threaded_rtp_handler/message_handler.rs:8:16
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::net::{SocketAddr, UdpSocket};
[INFO] [stdout]   |                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> staaf-janus/src/threaded_rtp_handler/message_handler.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `UdpMessage`
[INFO] [stdout]  --> staaf-janus/src/threaded_rtp_handler/rtp_connection.rs:2:35
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::threaded_rtp_handler::{UdpMessage, UdpRtpMessage, RTP_MESSAGE_QUEUE_DEPTH};
[INFO] [stdout]   |                                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `router_mut`
[INFO] [stdout]  --> staaf-janus/src/threaded_rtp_handler/rtp_connection.rs:3:31
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{callback, router, router_mut};
[INFO] [stdout]   |                               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::threaded_rtp_handler::rtp_connection::RtpConnectionHandle`
[INFO] [stdout]  --> staaf-janus/src/threaded_rtp_handler/udp_consumer.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::threaded_rtp_handler::rtp_connection::RtpConnectionHandle;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::iter::FromIterator`
[INFO] [stdout]  --> staaf-janus/src/threaded_rtp_handler/udp_consumer.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::iter::FromIterator;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `get_free_port`
[INFO] [stdout]   --> staaf-janus/src/threaded_rtp_handler/mod.rs:10:13
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::{get_free_port, IncomingStreamHandle};
[INFO] [stdout]    |             ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BytesMut`
[INFO] [stdout]   --> staaf-janus/src/threaded_rtp_handler/mod.rs:11:20
[INFO] [stdout]    |
[INFO] [stdout] 11 | use bytes::{Bytes, BytesMut};
[INFO] [stdout]    |                    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Receiver`, `Sender`, and `bounded`
[INFO] [stdout]   --> staaf-janus/src/threaded_rtp_handler/mod.rs:12:25
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crossbeam_channel::{bounded, Receiver, Sender};
[INFO] [stdout]    |                         ^^^^^^^  ^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `staaf_core::rpc::MediaStream`
[INFO] [stdout]   --> staaf-janus/src/threaded_rtp_handler/mod.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use staaf_core::rpc::MediaStream;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::mem`
[INFO] [stdout]   --> staaf-janus/src/threaded_rtp_handler/mod.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::mem;
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::mem::MaybeUninit`
[INFO] [stdout]   --> staaf-janus/src/threaded_rtp_handler/mod.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use std::mem::MaybeUninit;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `IpAddr`, `Ipv6Addr`, and `UdpSocket`
[INFO] [stdout]   --> staaf-janus/src/threaded_rtp_handler/mod.rs:18:16
[INFO] [stdout]    |
[INFO] [stdout] 18 | use std::net::{IpAddr, Ipv6Addr, SocketAddr, UdpSocket};
[INFO] [stdout]    |                ^^^^^^  ^^^^^^^^              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AtomicU64`, `AtomicUsize`, and `Ordering`
[INFO] [stdout]   --> staaf-janus/src/threaded_rtp_handler/mod.rs:19:25
[INFO] [stdout]    |
[INFO] [stdout] 19 | use std::sync::atomic::{AtomicU64, AtomicUsize, Ordering};
[INFO] [stdout]    |                         ^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `JoinHandle` and `spawn`
[INFO] [stdout]   --> staaf-janus/src/threaded_rtp_handler/mod.rs:21:19
[INFO] [stdout]    |
[INFO] [stdout] 21 | use std::thread::{spawn, JoinHandle};
[INFO] [stdout]    |                   ^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `janus_plugin_sys::rtcp::janus_rtcp_get_remb`
[INFO] [stdout]   --> staaf-janus/src/lib.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use janus_plugin_sys::rtcp::janus_rtcp_get_remb;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AudioCodec`, `MediaStreamAudio`, `MediaStreamVideo`, and `VideoCodec`
[INFO] [stdout]   --> staaf-janus/src/lib.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 |     AudioCodec, MediaStream, MediaStreamAudio, MediaStreamContent, MediaStreamVideo, StaafRPC,
[INFO] [stdout]    |     ^^^^^^^^^^               ^^^^^^^^^^^^^^^^                      ^^^^^^^^^^^^^^^^
[INFO] [stdout] 25 |     VideoCodec,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::mem`
[INFO] [stdout]   --> staaf-janus/src/lib.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | use std::mem;
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Ipv4Addr`
[INFO] [stdout]   --> staaf-janus/src/lib.rs:31:24
[INFO] [stdout]    |
[INFO] [stdout] 31 | use std::net::{IpAddr, Ipv4Addr};
[INFO] [stdout]    |                        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RtpConnectionHandle`
[INFO] [stdout]  --> staaf-janus/src/threaded_rtp_handler/manager.rs:1:66
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::threaded_rtp_handler::rtp_connection::{RtpConnection, RtpConnectionHandle};
[INFO] [stdout]   |                                                                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SocketAddr`
[INFO] [stdout]  --> staaf-janus/src/threaded_rtp_handler/manager.rs:8:24
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::net::{IpAddr, SocketAddr, UdpSocket};
[INFO] [stdout]   |                        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::threaded_rtp_handler::rtp_connection::RtpConnectionHandle`
[INFO] [stdout]  --> staaf-janus/src/threaded_rtp_handler/message_handler.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::threaded_rtp_handler::rtp_connection::RtpConnectionHandle;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `dashmap::DashMap`
[INFO] [stdout]  --> staaf-janus/src/threaded_rtp_handler/message_handler.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use dashmap::DashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SocketAddr`
[INFO] [stdout]  --> staaf-janus/src/threaded_rtp_handler/message_handler.rs:8:16
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::net::{SocketAddr, UdpSocket};
[INFO] [stdout]   |                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> staaf-janus/src/threaded_rtp_handler/message_handler.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `UdpMessage`
[INFO] [stdout]  --> staaf-janus/src/threaded_rtp_handler/rtp_connection.rs:2:35
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::threaded_rtp_handler::{UdpMessage, UdpRtpMessage, RTP_MESSAGE_QUEUE_DEPTH};
[INFO] [stdout]   |                                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `router_mut`
[INFO] [stdout]  --> staaf-janus/src/threaded_rtp_handler/rtp_connection.rs:3:31
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{callback, router, router_mut};
[INFO] [stdout]   |                               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::threaded_rtp_handler::rtp_connection::RtpConnectionHandle`
[INFO] [stdout]  --> staaf-janus/src/threaded_rtp_handler/udp_consumer.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::threaded_rtp_handler::rtp_connection::RtpConnectionHandle;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::iter::FromIterator`
[INFO] [stdout]  --> staaf-janus/src/threaded_rtp_handler/udp_consumer.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::iter::FromIterator;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `get_free_port`
[INFO] [stdout]   --> staaf-janus/src/threaded_rtp_handler/mod.rs:10:13
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::{get_free_port, IncomingStreamHandle};
[INFO] [stdout]    |             ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BytesMut`
[INFO] [stdout]   --> staaf-janus/src/threaded_rtp_handler/mod.rs:11:20
[INFO] [stdout]    |
[INFO] [stdout] 11 | use bytes::{Bytes, BytesMut};
[INFO] [stdout]    |                    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Receiver`, `Sender`, and `bounded`
[INFO] [stdout]   --> staaf-janus/src/threaded_rtp_handler/mod.rs:12:25
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crossbeam_channel::{bounded, Receiver, Sender};
[INFO] [stdout]    |                         ^^^^^^^  ^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `staaf_core::rpc::MediaStream`
[INFO] [stdout]   --> staaf-janus/src/threaded_rtp_handler/mod.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use staaf_core::rpc::MediaStream;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::mem`
[INFO] [stdout]   --> staaf-janus/src/threaded_rtp_handler/mod.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::mem;
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::mem::MaybeUninit`
[INFO] [stdout]   --> staaf-janus/src/threaded_rtp_handler/mod.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use std::mem::MaybeUninit;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `IpAddr`, `Ipv6Addr`, and `UdpSocket`
[INFO] [stdout]   --> staaf-janus/src/threaded_rtp_handler/mod.rs:18:16
[INFO] [stdout]    |
[INFO] [stdout] 18 | use std::net::{IpAddr, Ipv6Addr, SocketAddr, UdpSocket};
[INFO] [stdout]    |                ^^^^^^  ^^^^^^^^              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AtomicU64`, `AtomicUsize`, and `Ordering`
[INFO] [stdout]   --> staaf-janus/src/threaded_rtp_handler/mod.rs:19:25
[INFO] [stdout]    |
[INFO] [stdout] 19 | use std::sync::atomic::{AtomicU64, AtomicUsize, Ordering};
[INFO] [stdout]    |                         ^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `JoinHandle` and `spawn`
[INFO] [stdout]   --> staaf-janus/src/threaded_rtp_handler/mod.rs:21:19
[INFO] [stdout]    |
[INFO] [stdout] 21 | use std::thread::{spawn, JoinHandle};
[INFO] [stdout]    |                   ^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `janus_plugin_sys::rtcp::janus_rtcp_get_remb`
[INFO] [stdout]   --> staaf-janus/src/lib.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use janus_plugin_sys::rtcp::janus_rtcp_get_remb;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AudioCodec`, `MediaStreamAudio`, `MediaStreamVideo`, and `VideoCodec`
[INFO] [stdout]   --> staaf-janus/src/lib.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 |     AudioCodec, MediaStream, MediaStreamAudio, MediaStreamContent, MediaStreamVideo, StaafRPC,
[INFO] [stdout]    |     ^^^^^^^^^^               ^^^^^^^^^^^^^^^^                      ^^^^^^^^^^^^^^^^
[INFO] [stdout] 25 |     VideoCodec,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::mem`
[INFO] [stdout]   --> staaf-janus/src/lib.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | use std::mem;
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Ipv4Addr`
[INFO] [stdout]   --> staaf-janus/src/lib.rs:31:24
[INFO] [stdout]    |
[INFO] [stdout] 31 | use std::net::{IpAddr, Ipv4Addr};
[INFO] [stdout]    |                        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> staaf-janus/src/threaded_rtp_handler/rtp_connection.rs:106:17
[INFO] [stdout]     |
[INFO] [stdout] 106 |             let mut packet = &mut [header, 250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
[INFO] [stdout]     |                 ----^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> staaf-janus/src/threaded_rtp_handler/rtp_connection.rs:138:13
[INFO] [stdout]     |
[INFO] [stdout] 138 |         let mut packet = BytesMut::new();
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rtcp`
[INFO] [stdout]   --> staaf-janus/src/threaded_rtp_handler/rtp_utils.rs:82:28
[INFO] [stdout]    |
[INFO] [stdout] 82 |             MuxedRtp::RTCP(rtcp) => 0,
[INFO] [stdout]    |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_rtcp`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `drop_counter` is assigned to, but never used
[INFO] [stdout]   --> staaf-janus/src/threaded_rtp_handler/udp_consumer.rs:50:13
[INFO] [stdout]    |
[INFO] [stdout] 50 |         let mut drop_counter: u64 = 0;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_drop_counter` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `drop_counter` is never read
[INFO] [stdout]   --> staaf-janus/src/threaded_rtp_handler/udp_consumer.rs:61:17
[INFO] [stdout]    |
[INFO] [stdout] 61 |                 drop_counter += 1;
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: taking a mutable reference to a `const` item
[INFO] [stdout]    --> staaf-janus/src/lib.rs:433:17
[INFO] [stdout]     |
[INFO] [stdout] 433 |                 &mut PLUGIN,
[INFO] [stdout]     |                 ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: each usage of a `const` item creates a new temporary
[INFO] [stdout]     = note: the mutable reference will refer to this temporary, not the original `const` item
[INFO] [stdout] note: `const` item defined here
[INFO] [stdout]    --> staaf-janus/src/lib.rs:515:1
[INFO] [stdout]     |
[INFO] [stdout] 515 | const PLUGIN: Plugin = build_plugin!(
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(const_item_mutation)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `handle`
[INFO] [stdout]    --> staaf-janus/src/lib.rs:498:5
[INFO] [stdout]     |
[INFO] [stdout] 498 |     handle: *mut PluginSession,
[INFO] [stdout]     |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `packet`
[INFO] [stdout]    --> staaf-janus/src/lib.rs:499:5
[INFO] [stdout]     |
[INFO] [stdout] 499 |     packet: *mut janus_plugin::PluginRtcpPacket,
[INFO] [stdout]     |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_packet`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `JsepObject` is never used
[INFO] [stdout]    --> staaf-janus/src/lib.rs:131:6
[INFO] [stdout]     |
[INFO] [stdout] 131 | enum JsepObject {
[INFO] [stdout]     |      ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `SDP_THREAD` is never used
[INFO] [stdout]   --> staaf-janus/src/router.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | static mut SDP_THREAD: Option<JoinHandle<()>> = None;
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `SDP_RPC_SENDER` is never used
[INFO] [stdout]   --> staaf-janus/src/router.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | static mut SDP_RPC_SENDER: Option<Sender<SDPThreadRPC>> = None;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `start_sdp_thread` is never used
[INFO] [stdout]   --> staaf-janus/src/router.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub fn start_sdp_thread() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `queue_rpc` is never used
[INFO] [stdout]   --> staaf-janus/src/router.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub fn queue_rpc(msg: SDPThreadRPC) {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SDPThreadRPC` is never used
[INFO] [stdout]   --> staaf-janus/src/router.rs:38:10
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub enum SDPThreadRPC {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sdp_thread` is never used
[INFO] [stdout]   --> staaf-janus/src/router.rs:43:4
[INFO] [stdout]    |
[INFO] [stdout] 43 | fn sdp_thread(receiver: Receiver<SDPThreadRPC>) {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_AMOUNT_OF_MUXED_RTP_STREAMS` is never used
[INFO] [stdout]   --> staaf-janus/src/threaded_rtp_handler/mod.rs:26:7
[INFO] [stdout]    |
[INFO] [stdout] 26 | const MAX_AMOUNT_OF_MUXED_RTP_STREAMS: usize = 5;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `socket` is never read
[INFO] [stdout]   --> staaf-janus/src/threaded_rtp_handler/message_handler.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct MessageHandler {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 13 |     socket: UdpSocket,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `udp_socket` and `stream_index` are never read
[INFO] [stdout]   --> staaf-janus/src/threaded_rtp_handler/rtp_connection.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct RtpConnection {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 24 |     udp_socket: UdpSocket,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 25 |     rtp_streams: Vec<RtpStream>,
[INFO] [stdout] 26 |     stream_index: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `payload_type`, `csrc_count`, and `extension` are never read
[INFO] [stdout]  --> staaf-janus/src/threaded_rtp_handler/rtp_utils.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct RtpHeader {
[INFO] [stdout]   |            --------- fields in this struct
[INFO] [stdout] 4 |     pub payload_type: u8,
[INFO] [stdout]   |         ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 7 |     pub csrc_count: u8,
[INFO] [stdout]   |         ^^^^^^^^^^
[INFO] [stdout] 8 |     pub extension: Option<RtpExtension>,
[INFO] [stdout]   |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `id` and `length` are never read
[INFO] [stdout]   --> staaf-janus/src/threaded_rtp_handler/rtp_utils.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct RtpExtension {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 12 |     pub id: u16,
[INFO] [stdout]    |         ^^
[INFO] [stdout] 13 |     pub length: u16,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `seq_nr` is never used
[INFO] [stdout]   --> staaf-janus/src/threaded_rtp_handler/rtp_utils.rs:80:12
[INFO] [stdout]    |
[INFO] [stdout] 72 | impl MuxedRtp {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 80 |     pub fn seq_nr(&self) -> u16 {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> staaf-janus/src/lib.rs:183:9
[INFO] [stdout]     |
[INFO] [stdout] 183 | /         ROUTER
[INFO] [stdout] 184 | |             .as_ref()
[INFO] [stdout]     | |_____________________^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> staaf-janus/src/lib.rs:193:9
[INFO] [stdout]     |
[INFO] [stdout] 193 | /         ROUTER
[INFO] [stdout] 194 | |             .as_ref()
[INFO] [stdout]     | |_____________________^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> staaf-janus/src/router.rs:33:14
[INFO] [stdout]    |
[INFO] [stdout] 33 |     unsafe { SDP_RPC_SENDER.as_ref().expect("init() not run yet?") }
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> staaf-janus/src/threaded_rtp_handler/rtp_connection.rs:145:9
[INFO] [stdout]     |
[INFO] [stdout] 145 |         writer.write_u8(header);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 145 |         let _ = writer.write_u8(header);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> staaf-janus/src/threaded_rtp_handler/rtp_connection.rs:147:9
[INFO] [stdout]     |
[INFO] [stdout] 147 |         writer.write_u8(205);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 147 |         let _ = writer.write_u8(205);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> staaf-janus/src/threaded_rtp_handler/rtp_connection.rs:149:9
[INFO] [stdout]     |
[INFO] [stdout] 149 |         writer.write_u16::<BigEndian>(0);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 149 |         let _ = writer.write_u16::<BigEndian>(0);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> staaf-janus/src/threaded_rtp_handler/rtp_connection.rs:151:9
[INFO] [stdout]     |
[INFO] [stdout] 151 |         writer.write_u32::<BigEndian>(0);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 151 |         let _ = writer.write_u32::<BigEndian>(0);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> staaf-janus/src/threaded_rtp_handler/rtp_connection.rs:153:9
[INFO] [stdout]     |
[INFO] [stdout] 153 |         writer.write_u32::<BigEndian>(self.ssrc);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 153 |         let _ = writer.write_u32::<BigEndian>(self.ssrc);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> staaf-janus/src/threaded_rtp_handler/rtp_connection.rs:162:17
[INFO] [stdout]     |
[INFO] [stdout] 162 |                 writer.write_u16::<BigEndian>(current);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 162 |                 let _ = writer.write_u16::<BigEndian>(current);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> staaf-janus/src/threaded_rtp_handler/rtp_connection.rs:163:17
[INFO] [stdout]     |
[INFO] [stdout] 163 |                 writer.write_u16::<BigEndian>(bitfield);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 163 |                 let _ = writer.write_u16::<BigEndian>(bitfield);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> staaf-janus/src/threaded_rtp_handler/rtp_connection.rs:173:9
[INFO] [stdout]     |
[INFO] [stdout] 173 |         writer.write_u16::<BigEndian>(current);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 173 |         let _ = writer.write_u16::<BigEndian>(current);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> staaf-janus/src/threaded_rtp_handler/rtp_connection.rs:174:9
[INFO] [stdout]     |
[INFO] [stdout] 174 |         writer.write_u16::<BigEndian>(bitfield);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 174 |         let _ = writer.write_u16::<BigEndian>(bitfield);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> staaf-janus/src/threaded_rtp_handler/rtp_connection.rs:106:17
[INFO] [stdout]     |
[INFO] [stdout] 106 |             let mut packet = &mut [header, 250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
[INFO] [stdout]     |                 ----^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> staaf-janus/src/threaded_rtp_handler/rtp_connection.rs:138:13
[INFO] [stdout]     |
[INFO] [stdout] 138 |         let mut packet = BytesMut::new();
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rtcp`
[INFO] [stdout]   --> staaf-janus/src/threaded_rtp_handler/rtp_utils.rs:82:28
[INFO] [stdout]    |
[INFO] [stdout] 82 |             MuxedRtp::RTCP(rtcp) => 0,
[INFO] [stdout]    |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_rtcp`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `drop_counter` is assigned to, but never used
[INFO] [stdout]   --> staaf-janus/src/threaded_rtp_handler/udp_consumer.rs:50:13
[INFO] [stdout]    |
[INFO] [stdout] 50 |         let mut drop_counter: u64 = 0;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_drop_counter` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `drop_counter` is never read
[INFO] [stdout]   --> staaf-janus/src/threaded_rtp_handler/udp_consumer.rs:61:17
[INFO] [stdout]    |
[INFO] [stdout] 61 |                 drop_counter += 1;
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: taking a mutable reference to a `const` item
[INFO] [stdout]    --> staaf-janus/src/lib.rs:433:17
[INFO] [stdout]     |
[INFO] [stdout] 433 |                 &mut PLUGIN,
[INFO] [stdout]     |                 ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: each usage of a `const` item creates a new temporary
[INFO] [stdout]     = note: the mutable reference will refer to this temporary, not the original `const` item
[INFO] [stdout] note: `const` item defined here
[INFO] [stdout]    --> staaf-janus/src/lib.rs:515:1
[INFO] [stdout]     |
[INFO] [stdout] 515 | const PLUGIN: Plugin = build_plugin!(
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(const_item_mutation)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `handle`
[INFO] [stdout]    --> staaf-janus/src/lib.rs:498:5
[INFO] [stdout]     |
[INFO] [stdout] 498 |     handle: *mut PluginSession,
[INFO] [stdout]     |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `packet`
[INFO] [stdout]    --> staaf-janus/src/lib.rs:499:5
[INFO] [stdout]     |
[INFO] [stdout] 499 |     packet: *mut janus_plugin::PluginRtcpPacket,
[INFO] [stdout]     |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_packet`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `JsepObject` is never used
[INFO] [stdout]    --> staaf-janus/src/lib.rs:131:6
[INFO] [stdout]     |
[INFO] [stdout] 131 | enum JsepObject {
[INFO] [stdout]     |      ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `SDP_THREAD` is never used
[INFO] [stdout]   --> staaf-janus/src/router.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | static mut SDP_THREAD: Option<JoinHandle<()>> = None;
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `SDP_RPC_SENDER` is never used
[INFO] [stdout]   --> staaf-janus/src/router.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | static mut SDP_RPC_SENDER: Option<Sender<SDPThreadRPC>> = None;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `start_sdp_thread` is never used
[INFO] [stdout]   --> staaf-janus/src/router.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub fn start_sdp_thread() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `queue_rpc` is never used
[INFO] [stdout]   --> staaf-janus/src/router.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub fn queue_rpc(msg: SDPThreadRPC) {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SDPThreadRPC` is never used
[INFO] [stdout]   --> staaf-janus/src/router.rs:38:10
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub enum SDPThreadRPC {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sdp_thread` is never used
[INFO] [stdout]   --> staaf-janus/src/router.rs:43:4
[INFO] [stdout]    |
[INFO] [stdout] 43 | fn sdp_thread(receiver: Receiver<SDPThreadRPC>) {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_AMOUNT_OF_MUXED_RTP_STREAMS` is never used
[INFO] [stdout]   --> staaf-janus/src/threaded_rtp_handler/mod.rs:26:7
[INFO] [stdout]    |
[INFO] [stdout] 26 | const MAX_AMOUNT_OF_MUXED_RTP_STREAMS: usize = 5;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `socket` is never read
[INFO] [stdout]   --> staaf-janus/src/threaded_rtp_handler/message_handler.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct MessageHandler {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 13 |     socket: UdpSocket,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `udp_socket` and `stream_index` are never read
[INFO] [stdout]   --> staaf-janus/src/threaded_rtp_handler/rtp_connection.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct RtpConnection {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 24 |     udp_socket: UdpSocket,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 25 |     rtp_streams: Vec<RtpStream>,
[INFO] [stdout] 26 |     stream_index: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `payload_type`, `csrc_count`, and `extension` are never read
[INFO] [stdout]  --> staaf-janus/src/threaded_rtp_handler/rtp_utils.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct RtpHeader {
[INFO] [stdout]   |            --------- fields in this struct
[INFO] [stdout] 4 |     pub payload_type: u8,
[INFO] [stdout]   |         ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 7 |     pub csrc_count: u8,
[INFO] [stdout]   |         ^^^^^^^^^^
[INFO] [stdout] 8 |     pub extension: Option<RtpExtension>,
[INFO] [stdout]   |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `id` and `length` are never read
[INFO] [stdout]   --> staaf-janus/src/threaded_rtp_handler/rtp_utils.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct RtpExtension {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 12 |     pub id: u16,
[INFO] [stdout]    |         ^^
[INFO] [stdout] 13 |     pub length: u16,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `seq_nr` is never used
[INFO] [stdout]   --> staaf-janus/src/threaded_rtp_handler/rtp_utils.rs:80:12
[INFO] [stdout]    |
[INFO] [stdout] 72 | impl MuxedRtp {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 80 |     pub fn seq_nr(&self) -> u16 {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> staaf-janus/src/lib.rs:183:9
[INFO] [stdout]     |
[INFO] [stdout] 183 | /         ROUTER
[INFO] [stdout] 184 | |             .as_ref()
[INFO] [stdout]     | |_____________________^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> staaf-janus/src/lib.rs:193:9
[INFO] [stdout]     |
[INFO] [stdout] 193 | /         ROUTER
[INFO] [stdout] 194 | |             .as_ref()
[INFO] [stdout]     | |_____________________^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> staaf-janus/src/router.rs:33:14
[INFO] [stdout]    |
[INFO] [stdout] 33 |     unsafe { SDP_RPC_SENDER.as_ref().expect("init() not run yet?") }
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> staaf-janus/src/threaded_rtp_handler/rtp_connection.rs:145:9
[INFO] [stdout]     |
[INFO] [stdout] 145 |         writer.write_u8(header);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 145 |         let _ = writer.write_u8(header);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> staaf-janus/src/threaded_rtp_handler/rtp_connection.rs:147:9
[INFO] [stdout]     |
[INFO] [stdout] 147 |         writer.write_u8(205);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 147 |         let _ = writer.write_u8(205);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> staaf-janus/src/threaded_rtp_handler/rtp_connection.rs:149:9
[INFO] [stdout]     |
[INFO] [stdout] 149 |         writer.write_u16::<BigEndian>(0);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 149 |         let _ = writer.write_u16::<BigEndian>(0);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> staaf-janus/src/threaded_rtp_handler/rtp_connection.rs:151:9
[INFO] [stdout]     |
[INFO] [stdout] 151 |         writer.write_u32::<BigEndian>(0);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 151 |         let _ = writer.write_u32::<BigEndian>(0);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> staaf-janus/src/threaded_rtp_handler/rtp_connection.rs:153:9
[INFO] [stdout]     |
[INFO] [stdout] 153 |         writer.write_u32::<BigEndian>(self.ssrc);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 153 |         let _ = writer.write_u32::<BigEndian>(self.ssrc);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> staaf-janus/src/threaded_rtp_handler/rtp_connection.rs:162:17
[INFO] [stdout]     |
[INFO] [stdout] 162 |                 writer.write_u16::<BigEndian>(current);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 162 |                 let _ = writer.write_u16::<BigEndian>(current);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> staaf-janus/src/threaded_rtp_handler/rtp_connection.rs:163:17
[INFO] [stdout]     |
[INFO] [stdout] 163 |                 writer.write_u16::<BigEndian>(bitfield);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 163 |                 let _ = writer.write_u16::<BigEndian>(bitfield);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> staaf-janus/src/threaded_rtp_handler/rtp_connection.rs:173:9
[INFO] [stdout]     |
[INFO] [stdout] 173 |         writer.write_u16::<BigEndian>(current);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 173 |         let _ = writer.write_u16::<BigEndian>(current);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> staaf-janus/src/threaded_rtp_handler/rtp_connection.rs:174:9
[INFO] [stdout]     |
[INFO] [stdout] 174 |         writer.write_u16::<BigEndian>(bitfield);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 174 |         let _ = writer.write_u16::<BigEndian>(bitfield);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking staaf-ingest v0.1.0 (/opt/rustwide/workdir/staaf-ingest)
[INFO] [stdout] warning: unused import: `std::borrow::Borrow`
[INFO] [stdout]   --> staaf-ingest/src/ingest.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::borrow::Borrow;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Duration` and `delay_for`
[INFO] [stdout]   --> staaf-ingest/src/ingest.rs:19:19
[INFO] [stdout]    |
[INFO] [stdout] 19 | use tokio::time::{delay_for, Duration};
[INFO] [stdout]    |                   ^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `staaf_janus_client::JanusConnection`
[INFO] [stdout]  --> staaf-ingest/src/janus.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use staaf_janus_client::JanusConnection;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Duration` and `delay_for`
[INFO] [stdout]  --> staaf-ingest/src/janus.rs:2:19
[INFO] [stdout]   |
[INFO] [stdout] 2 | use tokio::time::{delay_for, Duration};
[INFO] [stdout]   |                   ^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::task::spawn`
[INFO] [stdout]  --> staaf-ingest/src/main.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use tokio::task::spawn;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> staaf-ingest/src/ingest.rs:191:28
[INFO] [stdout]     |
[INFO] [stdout] 191 | async fn ingest_connection(mut stream: TcpStream, plugin: JanusPluginOwned) -> Result<(), ()> {
[INFO] [stdout]     |                            ----^^^^^^
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> staaf-ingest/src/ingest.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 22 |     let mut janus_connection = JanusConnection::parse("ws://localhost:8188").unwrap();
[INFO] [stdout]    |         ----^^^^^^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `send_ping` is never used
[INFO] [stdout]    --> staaf-ingest/src/ingest.rs:184:14
[INFO] [stdout]     |
[INFO] [stdout]  60 | impl ControlConnection {
[INFO] [stdout]     | ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 184 |     async fn send_ping(&mut self) -> tokio::io::Result<usize> {
[INFO] [stdout]     |              ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> staaf-ingest/src/ingest.rs:62:9
[INFO] [stdout]    |
[INFO] [stdout] 62 | /         self.tcp_stream
[INFO] [stdout] 63 | |             .write(format!("{}. Use UDP port {}\n", FTL_INGEST_RESP_OK, port).as_bytes())
[INFO] [stdout] 64 | |             .await;
[INFO] [stdout]    | |__________________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 62 |         let _ = self.tcp_stream
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> staaf-ingest/src/ingest.rs:281:17
[INFO] [stdout]     |
[INFO] [stdout] 281 | /                 connection
[INFO] [stdout] 282 | |                     .tcp_stream
[INFO] [stdout] 283 | |                     .write(format!("{}\r\n\r\n", FTL_INGEST_RESP_PING).as_bytes())
[INFO] [stdout] 284 | |                     .await;
[INFO] [stdout]     | |__________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 281 |                 let _ = connection
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::borrow::Borrow`
[INFO] [stdout]   --> staaf-ingest/src/ingest.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::borrow::Borrow;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Duration` and `delay_for`
[INFO] [stdout]   --> staaf-ingest/src/ingest.rs:19:19
[INFO] [stdout]    |
[INFO] [stdout] 19 | use tokio::time::{delay_for, Duration};
[INFO] [stdout]    |                   ^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `staaf_janus_client::JanusConnection`
[INFO] [stdout]  --> staaf-ingest/src/janus.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use staaf_janus_client::JanusConnection;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Duration` and `delay_for`
[INFO] [stdout]  --> staaf-ingest/src/janus.rs:2:19
[INFO] [stdout]   |
[INFO] [stdout] 2 | use tokio::time::{delay_for, Duration};
[INFO] [stdout]   |                   ^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::task::spawn`
[INFO] [stdout]  --> staaf-ingest/src/main.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use tokio::task::spawn;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> staaf-ingest/src/ingest.rs:191:28
[INFO] [stdout]     |
[INFO] [stdout] 191 | async fn ingest_connection(mut stream: TcpStream, plugin: JanusPluginOwned) -> Result<(), ()> {
[INFO] [stdout]     |                            ----^^^^^^
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> staaf-ingest/src/ingest.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 22 |     let mut janus_connection = JanusConnection::parse("ws://localhost:8188").unwrap();
[INFO] [stdout]    |         ----^^^^^^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `send_ping` is never used
[INFO] [stdout]    --> staaf-ingest/src/ingest.rs:184:14
[INFO] [stdout]     |
[INFO] [stdout]  60 | impl ControlConnection {
[INFO] [stdout]     | ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 184 |     async fn send_ping(&mut self) -> tokio::io::Result<usize> {
[INFO] [stdout]     |              ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> staaf-ingest/src/ingest.rs:62:9
[INFO] [stdout]    |
[INFO] [stdout] 62 | /         self.tcp_stream
[INFO] [stdout] 63 | |             .write(format!("{}. Use UDP port {}\n", FTL_INGEST_RESP_OK, port).as_bytes())
[INFO] [stdout] 64 | |             .await;
[INFO] [stdout]    | |__________________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 62 |         let _ = self.tcp_stream
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> staaf-ingest/src/ingest.rs:281:17
[INFO] [stdout]     |
[INFO] [stdout] 281 | /                 connection
[INFO] [stdout] 282 | |                     .tcp_stream
[INFO] [stdout] 283 | |                     .write(format!("{}\r\n\r\n", FTL_INGEST_RESP_PING).as_bytes())
[INFO] [stdout] 284 | |                     .await;
[INFO] [stdout]     | |__________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 281 |                 let _ = connection
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 46.80s
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating staaf-ingest/Cargo.toml from 2018 edition to 2021
[INFO] [stderr]    Migrating staaf-core/Cargo.toml from 2018 edition to 2021
[INFO] [stderr]    Migrating staaf-janus-client/Cargo.toml from 2018 edition to 2021
[INFO] [stderr]    Migrating staaf-janus/Cargo.toml from 2018 edition to 2021
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"`
[INFO] [stderr]   |
[INFO] [stderr]   = note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr]   = note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
[INFO] [stderr]   = note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] [stderr] warning: staaf-janus/Cargo.toml: `crate_type` is deprecated in favor of `crate-type` and will not work in the 2024 edition
[INFO] [stderr] (in the `staaf_janus` library target)
[INFO] [stderr] warning: `staaf-janus` (manifest) generated 1 warning
[INFO] [stderr]     Checking staaf-core v0.1.0 (/opt/rustwide/workdir/staaf-core)
[INFO] [stderr]     Checking staaf-janus-client v0.1.0 (/opt/rustwide/workdir/staaf-janus-client)
[INFO] [stderr]    Migrating staaf-core/src/lib.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating staaf-janus-client/src/lib.rs from 2021 edition to 2024
[INFO] [stderr]     Checking staaf-ingest v0.1.0 (/opt/rustwide/workdir/staaf-ingest)
[INFO] [stderr]     Checking staaf-janus v0.1.0 (/opt/rustwide/workdir/staaf-janus)
[INFO] [stderr]    Migrating staaf-janus/src/lib.rs from 2021 edition to 2024
[INFO] [stderr]        Fixed staaf-janus/src/lib.rs (6 fixes)
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> staaf-janus/src/threaded_rtp_handler/message_handler.rs:45:33
[INFO] [stdout]     |
[INFO] [stdout]  34 |           for message in self.queue.iter() {
[INFO] [stdout]     |               -------    -----------------
[INFO] [stdout]     |               |          |
[INFO] [stdout]     |               |          this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |               |          `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |               `message` calls a custom destructor
[INFO] [stdout]     |               `message` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  40 |               if let Some(stream_handle) = self.stream_map.get(&IncomingStreamHandle {
[INFO] [stdout]     |                           -------------
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           `stream_handle` calls a custom destructor
[INFO] [stdout]     |                           `stream_handle` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  45 |                   if let Err(_) = stream_handle.queue.send(UdpRtpMessage {
[INFO] [stdout]     |  _________________________________^
[INFO] [stdout]  46 | |                     address: message.address,
[INFO] [stdout]  47 | |                     data: message.data,
[INFO] [stdout]  48 | |                     rtp: muxed_rtp,
[INFO] [stdout]  49 | |                 }) {
[INFO] [stdout]     | |                  ^
[INFO] [stdout]     | |                  |
[INFO] [stdout]     | |__________________this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                    up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  54 |               }
[INFO] [stdout]     |               - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-0.6.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-0.6.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `message` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-0.6.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `stream_handle` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dashmap-3.11.10/src/lock.rs:294:1
[INFO] [stdout]     |
[INFO] [stdout] 294 | impl<'rwlock, T: ?Sized> Drop for RwLockReadGuard<'rwlock, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> staaf-janus/src/threaded_rtp_handler/message_handler.rs:40:42
[INFO] [stdout]     |
[INFO] [stdout]  34 |           for message in self.queue.iter() {
[INFO] [stdout]     |               -------    -----------------
[INFO] [stdout]     |               |          |
[INFO] [stdout]     |               |          this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |               |          `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |               `message` calls a custom destructor
[INFO] [stdout]     |               `message` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  40 |               if let Some(stream_handle) = self.stream_map.get(&IncomingStreamHandle {
[INFO] [stdout]     |  _________________________-------------____^
[INFO] [stdout]     | |                         |
[INFO] [stdout]     | |                         `stream_handle` calls a custom destructor
[INFO] [stdout]     | |                         `stream_handle` will be dropped later as of Edition 2024
[INFO] [stdout]  41 | |                 ssrc: muxed_rtp.ssrc(),
[INFO] [stdout]  42 | |                 incoming_port: self.bound_port,
[INFO] [stdout]  43 | |                 peer_addr: message.address.ip(),
[INFO] [stdout]  44 | |             }) {
[INFO] [stdout]     | |              ^
[INFO] [stdout]     | |              |
[INFO] [stdout]     | |______________this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  55 |           }
[INFO] [stdout]     |           - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dashmap-3.11.10/src/lock.rs:294:1
[INFO] [stdout]     |
[INFO] [stdout] 294 | impl<'rwlock, T: ?Sized> Drop for RwLockReadGuard<'rwlock, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-0.6.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `message` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-0.6.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `stream_handle` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dashmap-3.11.10/src/lock.rs:294:1
[INFO] [stdout]     |
[INFO] [stdout] 294 | impl<'rwlock, T: ?Sized> Drop for RwLockReadGuard<'rwlock, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> staaf-janus/src/lib.rs:183:9
[INFO] [stdout]     |
[INFO] [stdout] 183 | /         ROUTER
[INFO] [stdout] 184 | |             .as_ref()
[INFO] [stdout]     | |_____________________^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: `--force-warn static-mut-refs` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> staaf-janus/src/lib.rs:193:9
[INFO] [stdout]     |
[INFO] [stdout] 193 | /         ROUTER
[INFO] [stdout] 194 | |             .as_ref()
[INFO] [stdout]     | |_____________________^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024
[INFO] [stdout]    --> staaf-janus/src/lib.rs:113:12
[INFO] [stdout]     |
[INFO] [stdout] 113 |           if let Some(data) = $data {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 316 |               let wrapper = or_return!(
[INFO] [stdout]     |  ___________________________-
[INFO] [stdout] 317 | |                 unsafe { Session::from_ptr(handle) }.ok(),
[INFO] [stdout]     | |                 ----------------------------------------- this value has a significant drop implementation which may observe a major change in drop order and requires your discretion
[INFO] [stdout] 318 | |                 PluginResult::error(c_str!("Session not found")).into_raw()
[INFO] [stdout] 319 | |             );
[INFO] [stdout]     | |_____________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] note: value invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/janus-plugin-0.12.0/src/session.rs:84:1
[INFO] [stdout]     |
[INFO] [stdout]  84 | impl<T> Drop for SessionWrapper<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: the value is now dropped here in Edition 2024
[INFO] [stdout]    --> staaf-janus/src/lib.rs:115:9
[INFO] [stdout]     |
[INFO] [stdout] 115 |           } else {
[INFO] [stdout]     |           ^
[INFO] [stdout] ...
[INFO] [stdout] 316 |               let wrapper = or_return!(
[INFO] [stdout]     |  ___________________________-
[INFO] [stdout] 317 | |                 unsafe { Session::from_ptr(handle) }.ok(),
[INFO] [stdout] 318 | |                 PluginResult::error(c_str!("Session not found")).into_raw()
[INFO] [stdout] 319 | |             );
[INFO] [stdout]     | |_____________- in this macro invocation
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-if-let-scope.html>
[INFO] [stdout]     = note: `--force-warn if-let-rescope` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout]     = note: this warning originates in the macro `or_return` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024
[INFO] [stdout]    --> staaf-janus/src/lib.rs:113:12
[INFO] [stdout]     |
[INFO] [stdout] 113 |           if let Some(data) = $data {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 337 |               let wrapper = or_return!(
[INFO] [stdout]     |  ___________________________-
[INFO] [stdout] 338 | |                 unsafe { Session::from_ptr(handle) }.ok(),
[INFO] [stdout]     | |                 ----------------------------------------- this value has a significant drop implementation which may observe a major change in drop order and requires your discretion
[INFO] [stdout] 339 | |                 PluginResult::error(c_str!("Session not found")).into_raw()
[INFO] [stdout] 340 | |             );
[INFO] [stdout]     | |_____________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] note: value invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/janus-plugin-0.12.0/src/session.rs:84:1
[INFO] [stdout]     |
[INFO] [stdout]  84 | impl<T> Drop for SessionWrapper<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: the value is now dropped here in Edition 2024
[INFO] [stdout]    --> staaf-janus/src/lib.rs:115:9
[INFO] [stdout]     |
[INFO] [stdout] 115 |           } else {
[INFO] [stdout]     |           ^
[INFO] [stdout] ...
[INFO] [stdout] 337 |               let wrapper = or_return!(
[INFO] [stdout]     |  ___________________________-
[INFO] [stdout] 338 | |                 unsafe { Session::from_ptr(handle) }.ok(),
[INFO] [stdout] 339 | |                 PluginResult::error(c_str!("Session not found")).into_raw()
[INFO] [stdout] 340 | |             );
[INFO] [stdout]     | |_____________- in this macro invocation
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-if-let-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `or_return` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024
[INFO] [stdout]    --> staaf-janus/src/lib.rs:113:12
[INFO] [stdout]     |
[INFO] [stdout] 113 |           if let Some(data) = $data {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 348 |               let wrapper = or_return!(
[INFO] [stdout]     |  ___________________________-
[INFO] [stdout] 349 | |                 unsafe { Session::from_ptr(handle) }.ok(),
[INFO] [stdout]     | |                 ----------------------------------------- this value has a significant drop implementation which may observe a major change in drop order and requires your discretion
[INFO] [stdout] 350 | |                 PluginResult::error(c_str!("Session not found")).into_raw()
[INFO] [stdout] 351 | |             );
[INFO] [stdout]     | |_____________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] note: value invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/janus-plugin-0.12.0/src/session.rs:84:1
[INFO] [stdout]     |
[INFO] [stdout]  84 | impl<T> Drop for SessionWrapper<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: the value is now dropped here in Edition 2024
[INFO] [stdout]    --> staaf-janus/src/lib.rs:115:9
[INFO] [stdout]     |
[INFO] [stdout] 115 |           } else {
[INFO] [stdout]     |           ^
[INFO] [stdout] ...
[INFO] [stdout] 348 |               let wrapper = or_return!(
[INFO] [stdout]     |  ___________________________-
[INFO] [stdout] 349 | |                 unsafe { Session::from_ptr(handle) }.ok(),
[INFO] [stdout] 350 | |                 PluginResult::error(c_str!("Session not found")).into_raw()
[INFO] [stdout] 351 | |             );
[INFO] [stdout]     | |_____________- in this macro invocation
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-if-let-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `or_return` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024
[INFO] [stdout]    --> staaf-janus/src/lib.rs:105:12
[INFO] [stdout]     |
[INFO] [stdout] 105 |         if let Some(data) = $data {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 452 |     let wrapper = or_return!(unsafe { Session::from_ptr(handle) }.ok());
[INFO] [stdout]     |                   -----------------------------------------------------
[INFO] [stdout]     |                   |          |
[INFO] [stdout]     |                   |          this value has a significant drop implementation which may observe a major change in drop order and requires your discretion
[INFO] [stdout]     |                   in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] note: value invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/janus-plugin-0.12.0/src/session.rs:84:1
[INFO] [stdout]     |
[INFO] [stdout]  84 | impl<T> Drop for SessionWrapper<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: the value is now dropped here in Edition 2024
[INFO] [stdout]    --> staaf-janus/src/lib.rs:107:9
[INFO] [stdout]     |
[INFO] [stdout] 107 |         } else {
[INFO] [stdout]     |         ^
[INFO] [stdout] ...
[INFO] [stdout] 452 |     let wrapper = or_return!(unsafe { Session::from_ptr(handle) }.ok());
[INFO] [stdout]     |                   ----------------------------------------------------- in this macro invocation
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-if-let-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `or_return` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> staaf-janus/src/router.rs:33:14
[INFO] [stdout]    |
[INFO] [stdout] 33 |     unsafe { SDP_RPC_SENDER.as_ref().expect("init() not run yet?") }
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating staaf-ingest/src/main.rs from 2021 edition to 2024
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> staaf-ingest/src/ingest.rs:40:34
[INFO] [stdout]     |
[INFO] [stdout]  40 |     while let Some(connection) = listener.next().await {
[INFO] [stdout]     |                    ----------    ^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                    |             |               |
[INFO] [stdout]     |                    |             |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                    |             |               `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                    |             this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                    |             up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                    `connection` calls a custom destructor
[INFO] [stdout]     |                    `connection` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  43 |                 spawn(ingest_connection(stream, plugin.clone()));
[INFO] [stdout]     |                 ------------------------------------------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                 `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  47 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-0.2.22/src/io/poll_evented.rs:454:1
[INFO] [stdout]     |
[INFO] [stdout] 454 | impl<E: Evented> Drop for PollEvented<E> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-0.2.22/src/io/poll_evented.rs:454:1
[INFO] [stdout]     |
[INFO] [stdout] 454 | impl<E: Evented> Drop for PollEvented<E> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `connection` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-0.2.22/src/io/poll_evented.rs:454:1
[INFO] [stdout]     |
[INFO] [stdout] 454 | impl<E: Evented> Drop for PollEvented<E> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-0.2.22/src/runtime/task/join.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T> Drop for JoinHandle<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> staaf-janus/src/threaded_rtp_handler/message_handler.rs:45:33
[INFO] [stdout]     |
[INFO] [stdout]  34 |           for message in self.queue.iter() {
[INFO] [stdout]     |               -------    -----------------
[INFO] [stdout]     |               |          |
[INFO] [stdout]     |               |          this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |               |          `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |               `message` calls a custom destructor
[INFO] [stdout]     |               `message` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  40 |               if let Some(stream_handle) = self.stream_map.get(&IncomingStreamHandle {
[INFO] [stdout]     |                           -------------
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           `stream_handle` calls a custom destructor
[INFO] [stdout]     |                           `stream_handle` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  45 |                   if let Err(_) = stream_handle.queue.send(UdpRtpMessage {
[INFO] [stdout]     |  _________________________________^
[INFO] [stdout]  46 | |                     address: message.address,
[INFO] [stdout]  47 | |                     data: message.data,
[INFO] [stdout]  48 | |                     rtp: muxed_rtp,
[INFO] [stdout]  49 | |                 }) {
[INFO] [stdout]     | |                  ^
[INFO] [stdout]     | |                  |
[INFO] [stdout]     | |__________________this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                    up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  54 |               }
[INFO] [stdout]     |               - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-0.6.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-0.6.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `message` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-0.6.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `stream_handle` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dashmap-3.11.10/src/lock.rs:294:1
[INFO] [stdout]     |
[INFO] [stdout] 294 | impl<'rwlock, T: ?Sized> Drop for RwLockReadGuard<'rwlock, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> staaf-janus/src/threaded_rtp_handler/message_handler.rs:40:42
[INFO] [stdout]     |
[INFO] [stdout]  34 |           for message in self.queue.iter() {
[INFO] [stdout]     |               -------    -----------------
[INFO] [stdout]     |               |          |
[INFO] [stdout]     |               |          this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |               |          `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |               `message` calls a custom destructor
[INFO] [stdout]     |               `message` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  40 |               if let Some(stream_handle) = self.stream_map.get(&IncomingStreamHandle {
[INFO] [stdout]     |  _________________________-------------____^
[INFO] [stdout]     | |                         |
[INFO] [stdout]     | |                         `stream_handle` calls a custom destructor
[INFO] [stdout]     | |                         `stream_handle` will be dropped later as of Edition 2024
[INFO] [stdout]  41 | |                 ssrc: muxed_rtp.ssrc(),
[INFO] [stdout]  42 | |                 incoming_port: self.bound_port,
[INFO] [stdout]  43 | |                 peer_addr: message.address.ip(),
[INFO] [stdout]  44 | |             }) {
[INFO] [stdout]     | |              ^
[INFO] [stdout]     | |              |
[INFO] [stdout]     | |______________this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  55 |           }
[INFO] [stdout]     |           - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dashmap-3.11.10/src/lock.rs:294:1
[INFO] [stdout]     |
[INFO] [stdout] 294 | impl<'rwlock, T: ?Sized> Drop for RwLockReadGuard<'rwlock, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-0.6.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `message` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-0.6.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `stream_handle` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/dashmap-3.11.10/src/lock.rs:294:1
[INFO] [stdout]     |
[INFO] [stdout] 294 | impl<'rwlock, T: ?Sized> Drop for RwLockReadGuard<'rwlock, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> staaf-janus/src/lib.rs:183:9
[INFO] [stdout]     |
[INFO] [stdout] 183 | /         ROUTER
[INFO] [stdout] 184 | |             .as_ref()
[INFO] [stdout]     | |_____________________^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: `--force-warn static-mut-refs` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> staaf-janus/src/lib.rs:193:9
[INFO] [stdout]     |
[INFO] [stdout] 193 | /         ROUTER
[INFO] [stdout] 194 | |             .as_ref()
[INFO] [stdout]     | |_____________________^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024
[INFO] [stdout]    --> staaf-janus/src/lib.rs:113:12
[INFO] [stdout]     |
[INFO] [stdout] 113 |           if let Some(data) = $data {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 316 |               let wrapper = or_return!(
[INFO] [stdout]     |  ___________________________-
[INFO] [stdout] 317 | |                 unsafe { Session::from_ptr(handle) }.ok(),
[INFO] [stdout]     | |                 ----------------------------------------- this value has a significant drop implementation which may observe a major change in drop order and requires your discretion
[INFO] [stdout] 318 | |                 PluginResult::error(c_str!("Session not found")).into_raw()
[INFO] [stdout] 319 | |             );
[INFO] [stdout]     | |_____________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] note: value invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/janus-plugin-0.12.0/src/session.rs:84:1
[INFO] [stdout]     |
[INFO] [stdout]  84 | impl<T> Drop for SessionWrapper<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: the value is now dropped here in Edition 2024
[INFO] [stdout]    --> staaf-janus/src/lib.rs:115:9
[INFO] [stdout]     |
[INFO] [stdout] 115 |           } else {
[INFO] [stdout]     |           ^
[INFO] [stdout] ...
[INFO] [stdout] 316 |               let wrapper = or_return!(
[INFO] [stdout]     |  ___________________________-
[INFO] [stdout] 317 | |                 unsafe { Session::from_ptr(handle) }.ok(),
[INFO] [stdout] 318 | |                 PluginResult::error(c_str!("Session not found")).into_raw()
[INFO] [stdout] 319 | |             );
[INFO] [stdout]     | |_____________- in this macro invocation
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-if-let-scope.html>
[INFO] [stdout]     = note: `--force-warn if-let-rescope` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout]     = note: this warning originates in the macro `or_return` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024
[INFO] [stdout]    --> staaf-janus/src/lib.rs:113:12
[INFO] [stdout]     |
[INFO] [stdout] 113 |           if let Some(data) = $data {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 337 |               let wrapper = or_return!(
[INFO] [stdout]     |  ___________________________-
[INFO] [stdout] 338 | |                 unsafe { Session::from_ptr(handle) }.ok(),
[INFO] [stdout]     | |                 ----------------------------------------- this value has a significant drop implementation which may observe a major change in drop order and requires your discretion
[INFO] [stdout] 339 | |                 PluginResult::error(c_str!("Session not found")).into_raw()
[INFO] [stdout] 340 | |             );
[INFO] [stdout]     | |_____________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] note: value invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/janus-plugin-0.12.0/src/session.rs:84:1
[INFO] [stdout]     |
[INFO] [stdout]  84 | impl<T> Drop for SessionWrapper<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: the value is now dropped here in Edition 2024
[INFO] [stdout]    --> staaf-janus/src/lib.rs:115:9
[INFO] [stdout]     |
[INFO] [stdout] 115 |           } else {
[INFO] [stdout]     |           ^
[INFO] [stdout] ...
[INFO] [stdout] 337 |               let wrapper = or_return!(
[INFO] [stdout]     |  ___________________________-
[INFO] [stdout] 338 | |                 unsafe { Session::from_ptr(handle) }.ok(),
[INFO] [stdout] 339 | |                 PluginResult::error(c_str!("Session not found")).into_raw()
[INFO] [stdout] 340 | |             );
[INFO] [stdout]     | |_____________- in this macro invocation
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-if-let-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `or_return` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024
[INFO] [stdout]    --> staaf-janus/src/lib.rs:113:12
[INFO] [stdout]     |
[INFO] [stdout] 113 |           if let Some(data) = $data {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 348 |               let wrapper = or_return!(
[INFO] [stdout]     |  ___________________________-
[INFO] [stdout] 349 | |                 unsafe { Session::from_ptr(handle) }.ok(),
[INFO] [stdout]     | |                 ----------------------------------------- this value has a significant drop implementation which may observe a major change in drop order and requires your discretion
[INFO] [stdout] 350 | |                 PluginResult::error(c_str!("Session not found")).into_raw()
[INFO] [stdout] 351 | |             );
[INFO] [stdout]     | |_____________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] note: value invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/janus-plugin-0.12.0/src/session.rs:84:1
[INFO] [stdout]     |
[INFO] [stdout]  84 | impl<T> Drop for SessionWrapper<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: the value is now dropped here in Edition 2024
[INFO] [stdout]    --> staaf-janus/src/lib.rs:115:9
[INFO] [stdout]     |
[INFO] [stdout] 115 |           } else {
[INFO] [stdout]     |           ^
[INFO] [stdout] ...
[INFO] [stdout] 348 |               let wrapper = or_return!(
[INFO] [stdout]     |  ___________________________-
[INFO] [stdout] 349 | |                 unsafe { Session::from_ptr(handle) }.ok(),
[INFO] [stdout] 350 | |                 PluginResult::error(c_str!("Session not found")).into_raw()
[INFO] [stdout] 351 | |             );
[INFO] [stdout]     | |_____________- in this macro invocation
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-if-let-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `or_return` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024
[INFO] [stdout]    --> staaf-janus/src/lib.rs:105:12
[INFO] [stdout]     |
[INFO] [stdout] 105 |         if let Some(data) = $data {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 452 |     let wrapper = or_return!(unsafe { Session::from_ptr(handle) }.ok());
[INFO] [stdout]     |                   -----------------------------------------------------
[INFO] [stdout]     |                   |          |
[INFO] [stdout]     |                   |          this value has a significant drop implementation which may observe a major change in drop order and requires your discretion
[INFO] [stdout]     |                   in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] note: value invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/janus-plugin-0.12.0/src/session.rs:84:1
[INFO] [stdout]     |
[INFO] [stdout]  84 | impl<T> Drop for SessionWrapper<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: the value is now dropped here in Edition 2024
[INFO] [stdout]    --> staaf-janus/src/lib.rs:107:9
[INFO] [stdout]     |
[INFO] [stdout] 107 |         } else {
[INFO] [stdout]     |         ^
[INFO] [stdout] ...
[INFO] [stdout] 452 |     let wrapper = or_return!(unsafe { Session::from_ptr(handle) }.ok());
[INFO] [stdout]     |                   ----------------------------------------------------- in this macro invocation
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-if-let-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `or_return` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> staaf-janus/src/router.rs:33:14
[INFO] [stdout]    |
[INFO] [stdout] 33 |     unsafe { SDP_RPC_SENDER.as_ref().expect("init() not run yet?") }
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 49.45s
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> staaf-ingest/src/ingest.rs:40:34
[INFO] [stdout]     |
[INFO] [stdout]  40 |     while let Some(connection) = listener.next().await {
[INFO] [stdout]     |                    ----------    ^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                    |             |               |
[INFO] [stdout]     |                    |             |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                    |             |               `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                    |             this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                    |             up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                    `connection` calls a custom destructor
[INFO] [stdout]     |                    `connection` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  43 |                 spawn(ingest_connection(stream, plugin.clone()));
[INFO] [stdout]     |                 ------------------------------------------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                 `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  47 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-0.2.22/src/io/poll_evented.rs:454:1
[INFO] [stdout]     |
[INFO] [stdout] 454 | impl<E: Evented> Drop for PollEvented<E> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-0.2.22/src/io/poll_evented.rs:454:1
[INFO] [stdout]     |
[INFO] [stdout] 454 | impl<E: Evented> Drop for PollEvented<E> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `connection` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-0.2.22/src/io/poll_evented.rs:454:1
[INFO] [stdout]     |
[INFO] [stdout] 454 | impl<E: Evented> Drop for PollEvented<E> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-0.2.22/src/runtime/task/join.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<T> Drop for JoinHandle<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] crater-edition-check: staaf-ingest v0.1.0 (/opt/rustwide/workdir/staaf-ingest) updating edition from 2021 to 2024
[INFO] [stderr] crater-edition-check: staaf-core v0.1.0 (/opt/rustwide/workdir/staaf-core) updating edition from 2021 to 2024
[INFO] [stderr] crater-edition-check: staaf-janus-client v0.1.0 (/opt/rustwide/workdir/staaf-janus-client) updating edition from 2021 to 2024
[INFO] [stderr] crater-edition-check: staaf-janus v0.1.0 (/opt/rustwide/workdir/staaf-janus) updating edition from 2021 to 2024
[INFO] [stderr] error: failed to load manifest for workspace member `/opt/rustwide/workdir/staaf-janus`
[INFO] [stderr] referenced by workspace at `/opt/rustwide/workdir/Cargo.toml`
[INFO] [stderr] 
[INFO] [stderr] Caused by:
[INFO] [stderr]   failed to parse manifest at `/opt/rustwide/workdir/staaf-janus/Cargo.toml`
[INFO] [stderr] 
[INFO] [stderr] Caused by:
[INFO] [stderr]   `crate_type` is unsupported as of the 2024 edition; instead use `crate-type`
[INFO] [stderr]   (in the `staaf_janus` library target)
[INFO] running `Command { std: "docker" "inspect" "3d55b6972f1e2e6bbb78ffa9394b157a63fa288b787065040f4c0d0badb76eb5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3d55b6972f1e2e6bbb78ffa9394b157a63fa288b787065040f4c0d0badb76eb5", kill_on_drop: false }`
[INFO] [stdout] 3d55b6972f1e2e6bbb78ffa9394b157a63fa288b787065040f4c0d0badb76eb5
